#ifndef _BASECOMPONENT_H
#define _BASECOMPONENT_H


#include <string>
#include <vector>

class BaseComponent {
  public:
    struct point {
        float x;

        float y;

    };
    
    BaseComponent(const char * modelName);

    virtual ~BaseComponent(void );

    virtual void Assemble() = 0;


  protected:
    //Loads figure from array of points.
    //Array should hold numPoints * 2 floats.
    void LoadFigure(int numPoints, const float * listPoints);


  public:
    void SetAngle(float angle);

    //Draws object in given position
    
    virtual void DrawAt(const point & position);


  protected:
    const std::string _modelName;

    std::vector<point> _figure;

    float _angle;

};
#endif
